package info.motteke.mybws;

import info.motteke.mybws.node.CellNode;
import info.motteke.mybws.node.ExcelNode;
import info.motteke.mybws.node.IterationNode;
import info.motteke.mybws.node.SheetNode;
import info.motteke.mybws.node.TextNode;

/**
 * 各ノードごとの処理を表すインターフェースです。
 * 
 * @author YWak
 */
public interface NodeVisitor {

    /**
     * {@linkplain ExcelNode}に対する処理
     * 
     * @param excel
     *            処理する{@linkplain ExcelNode}
     */
    public void visitExcel(ExcelNode excel);

    /**
     * {@linkplain SheetNode}に対する処理
     * 
     * @param sheet
     *            処理する{@linkplain SheetNode}
     */
    public void visitSheet(SheetNode sheet);

    /**
     * {@linkplain IterationNode}に対する処理
     * 
     * @param iteration
     *            処理する{@linkplain IterationNode}
     */
    public void visitIteration(IterationNode iteration);

    /**
     * {@linkplain CellNode}に対する処理
     * 
     * @param cell
     *            処理する{@linkplain CellNode}
     */
    public void visitCell(CellNode cell);

    /**
     * {@linkplain TextNode}に対する処理
     * 
     * @param text
     *            処理する{@linkplain TextNode}
     */
    public void visitText(TextNode text);
}
